This application is being filed concurrently with application Ser. No. 09/240,549, titled Multicast Support For Small Groups, both assigned to International Business Machines Corporation.
1. Field of the Invention
The invention disclosed broadly relates to the field of computer networks, and more particularly relates to the field of multicasting under various protocols including the Internet protocol (IP).
2. Description of the Related Art
The Internet has provided the public worldwide network required for the global linking of various networks and application of personal computers. In this regard, the Internet Protocol (xe2x80x9cIPxe2x80x9d) has become an important moving force for the growth of computer applicability. The Internet is a packet-based communication system. Each packet comprises a header portion that includes routing information and a payload (or message) portion that includes the data to be delivered. The header portion includes a destination node, a source node, and a portion identifying the protocol as the IP. IP packets can be transmitted as unicasts or multicasts. A unicast is a point-to-point transmission wherein the header identifies one source and one destination. A multicast identifies various destinations. In the case of a multicast, the destination address in the IP header corresponds to a group of several destination nodes. Thus, a multicast would be initiated by a source node sending an IP packet to a xe2x80x9cgroupxe2x80x9d address such that it reaches all the nodes in the group. There are various multicast algorithms in common use today. Thus, the IP protocol has many applications such as electronic-mail and IP telephony. Of these applications, IP multicast will be increasingly important in the future, and it will become more useful to support large numbers of xe2x80x9csmallxe2x80x9d multicast groups. This will be driven by several developmentsxe2x80x94such as IP Telephony and the emergence of small, mobile computing devices that are capable of supporting real-time voice and data communications. As IP telephony becomes widely adopted, it will become very important to support large numbers of conference calls with a small number of parties (such as 5 or less). It seems reasonable to expect that there will be a similar need to support many similarly small voice-data conferences and voice-data-video conferences. Multicasting offers one solution to the problem of providing efficient communications within groups.
Some of today""s IP multicast schemes, such as the xe2x80x9cdense modexe2x80x9d schemes, are suitable for the case in which there are a small number of large multicast groups that are of interest all over the Internet. These work well if one is trying to distribute xe2x80x9cbroadcast channelsxe2x80x9d like ABC, NBC, CBS, BBC, CNN and ESPN to viewers all around the world but they have scalability problems when there is a large number of groups. The nodes in the IP network build a distribution tree for each source and multicast group pair and they disseminate this multicast routing information to places where it is not neededxe2x80x94which is not desirable due to increased congestion.
In other schemes such as CBT (Core Based Trees) there has been an attempt to limit the amount of multicast routing information that needs to be disseminated, processed, and stored throughout the network. These schemes use a xe2x80x9cshared distribution treexe2x80x9d that is shared by all the members of a multicast group and they try to limit the distribution of multicast routing information so that this information only goes to the nodes that xe2x80x9creally need it.xe2x80x9d But these schemes also have problems. These problems include: (1) the tendency to concentrate traffic on small portions of a network and use of less than optimal paths in routing packets to their destinations, and (2) the requirement that each of the routers on a multicast tree xe2x80x9csignalxe2x80x9d and store the multicast routing information, which can be a problem if there are a large number of multicast groups.
In many applications, the need for multicasting timeliness of packet delivery is more important than reliability. However, in other applications reliable transmissions are highly desirable.
Accordingly, there is a need for a system which overcomes the above problems.
The multicasting system described herein provides a solution for the problems discussed above.
Therefore, in accordance with the invention, in a multicast system, a method for multicasting data packets in a packet-based data network comprises the source node steps of: preparing at least one packet comprising a payload portion, multicast route information, and an error detection mechanism; transmitting the packet to at least one intermediate for delivery to at two destination nodes; waiting for at least one acknowledgment signal indicating receipt of the at least one packet by at least one receiving node; and retransmitting a packet to a set of receiving nodes from which no acknowledgment has been received. The multicast route information includes information for use by the at least one intermediate node to forward the packet to at least two destination nodes. The waiting period can be a fixed period or adjustable based on measured return times. Of course, when re-transmitting data not received, the re-transmitted data need not be packaged or routed the same way as in the original transmission.